(Quick Reference)
findAll
Purpose
Finds all of domain class instances matching the specified query
Examples
// everything
Book.findAll()// with a positional parameter
Book.findAll("from Book as b where b.author=?", ['Dan Brown'])// 10 books from Dan Brown staring from 5th book ordered by release date
Book.findAll("from Book as b where b.author=? order by b.releaseDate",
['Dan Brown'], [max: 10, offset: 5])// examples with max/offset usage
def query = "from Book as b where b.author='Dan Brown' order by b.releaseDate"// first 10 books
Book.findAll(query, [max: 10])// 10 books starting from 5th
Book.findAll(query, [max: 10, offset: 5])// examples with named parameters
Book.findAll("from Book as b where b.author=:author",
[author: 'Dan Brown'])
Book.findAll("from Book as b where b.author=:author",
[author: 'Dan Brown'], [max: 10, offset: 5])
Book.findAll("from Book as b where b.author in (:authors)",
[authors: ['Dan Brown', 'Jack London']])// examples with tables join
Book.findAll("from Book as b where not exists " +
"(from Borrow as br where br.book = b)")// query by example
def example = new Book(author: "Dan Brown")
Book.findAll(example)// Use where criteria (since Grails 2.0)
def results = Person.findAll {
lastName == "Simpson"
}
def results = Person.findAll(sort:"firstName") {
lastName == "Simpson"
}
Description
The
findAll
method allows querying with Hibernate's query language
HQL and querying by example, returning all matching instances. Pagination can be controlled using the
max
and
offset
parameters:
Book.findAll("from Book as b where b.author=:author",
[author: 'Dan Brown'], [max: 10, offset: 5])
The
findAll
method supports the 2nd level cache:
Book.findAll("from Book as b where b.author=:author",
[author:'Dan Brown'], [max: 10, offset: 5, cache: true])
The basic syntax for the method is:
Book.findAll()
Book.findAll(String query)
Book.findAll(String query, Collection positionalParams)
Book.findAll(String query, Collection positionalParams, Map queryParams)
Book.findAll(String query, Map namedParams)
Book.findAll(String query, Map namedParams, Map queryParams)
Book.findAll(Book example)
Book.findAll(Closure whereCriteria)
Book.findAll(Map queryParams, Closure whereCriteria)
If you have a join in your HQL, the method will return a List
of Array
s containing domain class instances. You may wish to use executeQuery in this case so you have more flexibility in specifying what gets returned.
Parameters:
query
- An HQL query
positionalParams
- A List
of parameters for a positional parametrized HQL query
namedParams
- A Map
of named parameters a HQL query
queryParams
- A Map
containing parameters 'max', and/or 'offset' and/or 'cache'
example
- An instance of the domain class for query by example
readOnly
- true
if returned objects should not be automatically dirty-checked (simlar to read()
)
fetchSize
- number of rows fetched by the underlying JDBC driver per round trip
flushMode
- Hibernate FlushMode
override, defaults to FlushMode.AUTO
timeout
- query timeout in seconds